<? ob_start(); ?>
<?php
class user extends CI_Controller
{
    function __construct()
    {
        parent ::__construct();
        $this->load->helper('mail_helper');
        $this->load->helper('main_helper');
        $this->load->model('user_model');
        $this->load->model('category_model');
        $this->data['categories']=$this->category_model->getAll();
    }
    function register_form()
    {
        if(check_login_user())
        {
            $this->profile();
            return;
        }
        $this->load->view('fontend/header');
        $this->load->view('fontend/mainleft',$this->data);
        $this->load->view('fontend/user/register_user');
        $this->load->view('fontend/footer');
    }
    function registernew() {

        if (isset($_POST['username']) && isset($_POST['email'])) {
            //kiem tra xem ton tai user va mail chua
            $check = $this->user_model->checkUserRegister(strtolower(trim($_POST['username'])), trim($_POST['email']));
            if ($check) {
                echo 'PROCESSING';
                exit();
            }
        }

        if ($_POST) {
            $avatar = base_url() . 'public/user/images/noavatar.jpg';
            $arrUser = array(
                'username'  => strtolower(trim($_POST['username'])),
                'pass'      => md5($_POST['password']),
                'email'     => trim($_POST['email']),
                'phone'     => trim($_POST['phone']),
                'avatar'    => $avatar,
                'status'    => 0
            );

            $userID = $this->user_model->register($arrUser);

            if ($userID)
            {
                $this->sendMail($userID, trim($_POST['username']), trim($_POST['email']));
                echo 'REGISTERED';
            }
            else
            {
                echo 'UNSUCSESS';
            }
        }

    }
    function sendMail($uid, $username, $toEmail,$userold='') {
        $this->load->helper('mail');
        if($userold=='')
            $linkActivate = base_url() . 'user/activate/' . $uid . '/' . md5($uid).'/0/0/'.base64_encode($this->session->userdata('url_register'));
        else
            $linkActivate = base_url() . 'user/activate/' . $uid . '/' .  md5($uid).'/'.$userold.'/'.  md5($userold);

        $link = base_url();
        $mesnger = "chào bạn $username </br>";
        $mesnger .="bạn đã đăng kí thành công tài khoản tại website Ngoạ Long </br>";
        $mesnger .="click vào link dưới đây để kích hoạt tài khoản </br>";
        $mesnger .=  $linkActivate;
        $ok = send_mail_helper($toEmail,'activate',$mesnger);

    }
    /**
     * @Desc Ham kich hoạt thanh vien
     * @return NULL
     * */
    function activate() {
        $uid 		= (int)$this->uri->segment(3, -1);
        $endCode 	= $this->uri->segment(4, '');
        $url = $this->uri->segment(7, '');
        $endCodeCheck 		=  md5($uid);
        if ($uid && ($endCode == $endCodeCheck)) {
            $ok = $this->user_model->activate($uid);
            if ($ok) {
                // tao session
                $this->setUserSession($uid);
                // end tao session
                if($url) redirect(base64_decode($url));
                else redirect(base_url());
            }
        } else {
            echo 'Xin đừng hack em';
        }
    }
    /**
     * @Desc Ham kiểm tra username có tồn trại không
     * @return True| False
     * */
    function checkUserName() {
        $username = $_POST['username'];
        $check = $this->user_model->checkUserInfo('username', $username);
        if ($check)
            echo 'true';
        else
            echo 'false';
    }
    /**
     * @Desc Ham kiểm tra email có tồn trại không
     * @return True| False
     * */
    function checkEmail() {
        $email = $_POST['email'];
        $check = $this->user_model->checkUserInfo('email', $email);
        if ($check) {
            echo 'true';
        } else {
            echo 'false';
        }
    }
    /**
     * đăng nhập thành viên
     */
    function login() {
        $info = $this->session->userdata('uinfo');
        $data = NULL;
        $msg = NULL;

        if (isset($_POST["username"])) {
            $username =trim(($_POST["username"]));
            $pass = md5(trim($_POST["pass"]));
            if ($username !== "") {
                if ($pass !== "") {
                    $this->load->library('user_agent');
                    $mem = $this->user_model->login($username, $pass);
                    $logs = array(
                        "log_username" => $username,
                        "log_date" => time(),
                        "log_ip" => $this->input->ip_address(),
                        "log_user_againt" => $this->agent->browser() . ', version:' . $this->agent->version(),
                        "type" => 1
                    );
                    if ($mem !== NULL) {
                        if (($mem["status"]) == 1) {
                            $data["success"] = TRUE;
                            $logs["log_status"] = 1;
                            $this->user_model->insert_log($logs);
                            $this->setUserSession($mem['id']); // dang nhap thanh cong thi cap cho user 1 session di lai
                            echo 'SUCSESS'; //HanhND sua lai
                        } else {
                            $logs["log_status"] = 0;
                            $this->user_model->insert_log($logs);
                            $msg[] = 'Tài khoản này chưa được kích hoạt'; //"Tài khoản này chưa được kích hoạt";
                            echo 'NOT_ACTIVATE'; //HanhND sua lai
                        }
                    } else {
                        $logs["log_status"] = 0;
                        $this->user_model->insert_log($logs);

                        $msg[] = 'Đăng nhập không thành công'; //"Đăng nhập không thành công";
                        echo 'UNSUCSESS'; //HanhND sua lai
                    }
                }
                else
                    $msg[] = 'Bạn chưa nhập mật khẩu'; //"Bạn chưa nhập mật khẩu";
            }
            else
                $msg[] = "Bạn chưa nhập tên tài khoản"; //"Bạn chưa nhập tên tài khoản";
        }
        $data["msg"] = $msg;
        //	redirect(base_url().'user');
    }
    /** Ham ham setsession theo user gan thong tin user vao session* */
    function setUserSession($uid) {
        $mem = $this->user_model->getUserById($uid);
        $info = $mem["id"] . "|" . $mem["username"] .  "|" . $mem["avatar"] . "|" . time() . "|" . $mem["email"] . "|" . $mem["phone"] . "|" ;
        $this->session->set_userdata("uinfo", $info);
    }
    /**
     * thoat
     */
    function logout() {
        $this->load->library('user_agent');
        if (!check_login_user()) {
            redirect(base_url());
        }
        $username = info_from_session_user(1);
        $logs = array(
            "log_username" => $username,
            "log_date" => time(),
            "log_ip" => $this->input->ip_address(),
            "log_user_againt" => $this->agent->browser() . ', version:' . $this->agent->version(),
            "type" => 1,
            "log_out" => 1
        );
        $this->user_model->insert_log($logs);
        $this->session->unset_userdata("uinfo");
        $this->user_model->update_session();
        redirect(base_url());
    }
    function profile() {
        if (!check_login_user()) {
            redirect(base_url());
        }
        $type = (int) $this->uri->segment(3,1);
        $this->data['title']    = 'Trang cá nhân '.info_from_session_user(1).'';
        $this->data['sub_tab']  = 'profile';
        $userId = info_from_session_user(0);
        $this->data['user']     = $this->user_model->getUserInfo($userId);
        $this->data['type']     =   $type;
        $this->load->view('fontend/user/profile', $this->data);
    }

}